<?php
/**
 * Класс Photo отвечает за обработку изображений
 * 
 * @author Sayp
 */
class Photo extends ActiveRecord {
	protected $tableName = 'photo';
	protected $pkName = 'ID_photo';

	/**
	 * Загружаем фотографии из массива Files
	 * 
	 * @param int $idEssence - ID сущности
	 * @param int $idEssenceType - ID типа сущности
	 */
	public static function savePhotosFromFiles($idEssence, $idEssenceType) {
		if (empty($_FILES)) return;
		
		foreach ($_FILES as $file) {
			if (is_array($file['tmp_name'])) { // Если загружаем несколько фоток
				for ($i = 0; $i < count($file['tmp_name']); $i++) {
					$arrPhoto = array(
						'name' => @$file['name'][$i],
						'type' => @$file['type'][$i],
						'tmp_name' => @$file['tmp_name'][$i],
						'error' => @$file['error'][$i],
						'size' => @$file['size'][$i],
					);
					self::saveOnePhoto($arrPhoto, $idEssence, $idEssenceType);
				}
			}
			else self::saveOnePhoto($file, $idEssence, $idEssenceType);
		}
	}
	
	/**
	 * Загружаем одну фотку
	 * 
	 * @param array $arrPhoto - массив фотки
	 * @param int $idEssence - ID сущности
	 * @param int $idEssenceType - ID типа сущности
	 */
	public static function saveOnePhoto(array $arrPhoto, $idEssence, $idEssenceType) {
		if ($arrPhoto['error']) return;
		if (!strpos($arrPhoto['type'], 'jpeg')) return;
		$objPhoto = new Photo(array('ID_essence' => $idEssence, 'ID_essence_type' => $idEssenceType));
		$objPhoto->save();
		
		move_uploaded_file($arrPhoto['tmp_name'], ABSPATH . 'content/images/original/' . $objPhoto->id . '.jpg');
	}
	
	/**
	 * После добавления фотки ставим ее главной, если у такой сущности нет фотки
	 */
	protected function afterCreate() {
		$objEssence = Essence::getEssenceObjectById($this->getField('ID_essence_type'), $this->getField('ID_essence'));

		if (!$objEssence->getField('ID_photo')) $objEssence->updateFields(array('ID_photo' => $this->id));
	}
	
}